#include <iostream>
#include <vector>
using namespace std;
 
int n = 0;
void func1(vector<vector<int>>& arr) // 列镜像
{
	for (int j = 0; j < n / 2; ++j)
	{
		for (int i = 0; i < n; ++i)
		{
			swap(arr[i][j], arr[i][n - j - 1]);
		}
	}
}
void func2(vector<vector<int>>& arr) // 行镜像
{
	auto tmp = arr;
	int cnt = 1;
	for (int i = 0; i < n / 2; ++i)
	{
		for (int j = 0; j < n; ++j)
		{
			swap(arr[i][j], arr[n - i - 1][j]);
		}
	}
}
int main()
{
	cin >> n;
	vector<vector<int>> arr(n, vector<int>(n));
	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < n; ++j)
		{
			cin >> arr[i][j];
		}
	}
	int q = 0;
	cin >> q;
	int cnt1 = 0, cnt2 = 0;
	while (q--)
	{
		int x = 0;
		cin >> x;
		if (x == 1) // 顺时针180度，列镜像？
		{
			++cnt1, ++cnt2;
			// func1(arr);
			// func2(arr);
		}
		else // 行镜像
		{
			++cnt2;
			// func2(arr);
		}
	}
	cnt1 %= 2, cnt2 %= 2;
	if (cnt1)
		func1(arr);
	if (cnt2)
		func2(arr);
	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < n; ++j)
		{
			cout << arr[i][j] << " ";
		}
		cout << endl;
	}
	return 0;
}